package com.longyiqun.android.zhihu.Activity;

import android.content.Intent;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ImageView;

import com.google.gson.JsonObject;
import com.koushikdutta.async.future.FutureCallback;
import com.koushikdutta.ion.Ion;
import com.longyiqun.android.zhihu.R;

// 知乎Entity的详情页面 (利用WebView来显示json内的html页面)
public class WebViewActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView2(R.layout.activity_web_view);
        // 设置返回页面，这个需要在AndroidManifest文件定义
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        // 获取传进来的意图
        Intent intent = getIntent();
        // 根据意图获取传进来的值
        String url = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
        // 开始展示详情页面
        getBody(url);
    }

    // 展示详情主方法
    public void getBody(String url) {
        Ion.with(this)
                .load(url)
                .asJsonObject()
                .setCallback(new FutureCallback<JsonObject>() {
                    @Override
                    public void onCompleted(Exception e, JsonObject result) {
                        // 设置WebView
                        WebView webView = (WebView) findViewById(R.id.mywebview);
                        WebSettings webSettings = webView.getSettings();
                        webSettings.setJavaScriptEnabled(true);
                        // 设置UTF-8
                        webView.getSettings().setDefaultTextEncodingName("UTF-8");
                        try {
                            // 获取json的body
                            String body = result.get("body").getAsString();
                            // 获取json的image
                            String imageURL = result.get("image").getAsString();
                            // 设置详细页面的大图
                            SetDetailImage(imageURL);
                            // body添加css的路径
                            body = "<link rel=\"stylesheet\" type=\"text/css\" href=\"myCss.css\" />" + body;
                            // 利用loadDataWithBaseURL方法，设置支持css的html
                            webView.loadDataWithBaseURL("file:///android_asset/", body, "text/html", "utf-8", null);
                        } catch (Exception ex) {
                            // 如果出错，页面显示Error字样
                            String bodyError = "Error!";
                            webView.loadData(bodyError, "text/html", null);
                        }
                    }
                });
    }

    // 设置大图
    public void SetDetailImage(String imgURL) {
        ImageView imageView = (ImageView) findViewById(R.id.detailimage);
        // 获取缩略图
        Ion.with(imageView)
                // 定义placeholder
                .placeholder(R.drawable.android_icon)
                // 载入
                .load(imgURL);
    }
}